﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;

namespace EFDataModel
{
    public partial class EFAddress
    {
        #region static
        ///// <summary>
        ///// Sucht die passende EFAddress anhander der übergebenen ID heraus
        ///// </summary>
        ///// <param name="id">EFAddress ID nach der gesucht werden soll</param>
        ///// <param name="azDataModelContainer">Der DataModelContainer der verwendet werden soll für die Suche</param>
        ///// <returns>EFAddress Object | Null wenn nichts gefunden wurde</returns>
        //public static EFAddress GetAddressById(int id, EFModelContainer azDataModelContainer)
        //{
        //    try
        //    {
        //        return (EFAddress)azDataModelContainer.GetObjectByKey(new EntityKey(EFModelConstants.EFModelName + ".EFBaseMenge", "ID", id));
        //    }
        //    catch (Exception)
        //    {
        //        return null;
        //    }
        //}

        /// <summary>
        /// Gibt ein neu  erstelltes Addressobjekt zurück.
        /// </summary>
        /// <param name="street">Straße</param>
        /// <param name="housenumber">Hausnummer</param>
        /// <param name="city">Stadt</param>
        /// <param name="zipcode">Postleitzahl</param>
        /// <param name="countryId">LänderId vom Enum ECountries</param>
        /// <param name="currentUserId">Aktuelle BenutzerId die als Ersteller und aktueller Bearbeiter eingetragen wird</param>
        /// <param name="addressName">Name der Adresse z.B. Standardadresse, Lieferadresse, ...</param>
        /// <returns>Neu erstelles Adressobjekt.</returns>
        public static EFAddress GetNewAddress(string street, string housenumber, string city, string zipcode, int? countryId, long currentUserId, string addressName)
        {
            EFAddress efAddress = new EFAddress();
            //Initialisieren der Addressdaten
            efAddress.CreatorID = currentUserId;
            efAddress.CreationDate = DateTime.Now;
            efAddress.EditorID = currentUserId;
            efAddress.EditDate = DateTime.Now;
            //Bezeichnung der Adresse, z.b. Standardaddresse, Lieferadresse, ...
            efAddress.Name = addressName;

            efAddress.Street = street ?? string.Empty;
            efAddress.HouseNumber = housenumber ?? string.Empty;
            efAddress.City = city ?? string.Empty;
            efAddress.Zipcode = zipcode ?? string.Empty;
            efAddress.EFCountryID = countryId;

            return efAddress;
        }
        #endregion
    }
}
